1. Field of the Invention
The present invention relates to methods for communicating between two or more “peer” target devices in a network environment. More specifically, the present invention relates to a method for communicating and distributing information, such as files or search commands, in a network environment by establishing first contact from a first peer target device to a predetermined number of neighbor nodes and receiving aggregated information, such as responses to commands and queries, about the network from the neighbor nodes.
2. Description of the Related Art
During current approaches to distributing information, such as files or search commands, to one or more target devices in a network environment, one or more central servers may be used to communicate the information to a plurality of target devices.
Such a centralized system presents some difficulties. For example, an adverse effect on the central server will affect all target devices communicating with the server.
Other approaches to distributing information use a “peer-to-peer” means of distribution, i.e., a system in which two or more target devices are able to communicate directly with each other. Current protocols of “peer-to-peer” distributed searching and file-sharing present certain difficulties, however.
For example, with the Napster “peer-to-peer” protocol, the files to be shared stay on each target device without passing through a server. However, Napster still uses a server to provide the ability to search for particular files and initiate a direct transfer between the clients. Thus, the Napster protocol may encounter some of the server-related difficulties described above. Additionally, the Napster protocol may encounter such peer-to-peer protocol-related problems as network congestion and search results that are constantly changing as target devices enter and leave the network. The Napster protocol may require large bandwidths, may slow communication and may impede results.
Meanwhile, with the Gnutella protocol, the files to be shared stay on each target device. Additionally, the capability to search for particular files and is also available on each target device. Thus, each target device is able to act as both client and server. However, when a search is conducted from an originating target device using the Gnutella protocol, the search results received at the originating target device may change from second to second as other target devices responding to the originating target device enter and leave the network. Furthermore, when a target device has a response to the originating target device, the results are relayed to the originating target device through the intervening target devices that forwarded the original request. As a search spreads over the Gnutella network, the path from the originating target device to another target device with the desired file may become longer and more convoluted. Thus, the search results may be delayed and may even become outdated before they arrive at the originating target device. The transfer of search results from target devices far away from the originating device may require large bandwidths, may slow communication and may impede results.
It would be desirable, therefore, to provide a method of communicating information among a plurality of target devices that is more efficient, reduces network and processor overhead and improves performance.